package com.iot.ammeter.service.web.campus;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.iot.ammeter.dto.web.campus.CampusInfoDTO;
import com.iot.ammeter.dto.web.campus.SchoolNameAndCampusNameDTO;
import com.iot.ammeter.entity.web.campus.Campus;
import com.baomidou.mybatisplus.extension.service.IService;
import com.iot.ammeter.query.web.campus.CampusQuery;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 校区 服务类
 * </p>
 *
 * @author basil
 * @since 2021-09-25
 */
public interface CampusService extends IService<Campus> {

    /**
     * 获取校区及校区名
     *
     * @return 返回树形校区及校区名
     */
    Map<String, List<SchoolNameAndCampusNameDTO>> getSchoolNameAndCampusName();

    /**
     * 获取学校信息列表
     *
     * @param page        请求页码
     * @param pageSize    每页数量
     * @param campusQuery 查询条件
     * @return 返回学校信息列表
     */
    IPage<Campus> getCampusList(int page, int pageSize, CampusQuery campusQuery);

    /**
     * 添加校区信息
     *
     * @param campusInfoDTO 校区信息
     * @return 添加成功或者失败提示
     */
    String addCampus(CampusInfoDTO campusInfoDTO);

    /**
     * 编辑/更新校区信息
     *
     * @param campusId      校区id
     * @param campusInfoDTO 校区信息
     * @return 编辑成功或者编辑失败提示
     */
    String editCampus(String campusId, CampusInfoDTO campusInfoDTO);

    /**
     * 删除校区信息（逻辑删除）
     *
     * @param campusId 校区id
     * @return 删除成功或者删除失败
     */
    String delCampus(String[] campusId);

    /**
     * 获取校区详细信息
     *
     * @param campusId 校区id
     * @return 返回校区详细信息json数据
     */
    CampusInfoDTO getCampusDetails(String campusId);
}
